package com.zhang.learn.thymeleaf.controller;

import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.zhang.learn.thymeleaf.dto.UserDto;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

@RequestMapping("/user")
public class importExcelController {
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public void importExcel(@RequestParam("file") MultipartFile file) {
        ImportParams params = new ImportParams();
        // 设置标题行数，数据从第几行开始读取等参数
        params.setTitleRows(1); // 假设标题行是第1行
        params.setHeadRows(1);  // 假设表头行是第2行
        try {
            List<UserDto> userList = ExcelImportUtil.importExcel(file.getInputStream(), UserDto.class, params);
            // 处理导入的数据，比如保存到数据库
            for (UserDto user : userList) {
                System.out.println("user = " + user);
            }
        } catch (Exception e) {
            // 异常处理，比如导入失败时的错误信息反馈
            e.printStackTrace();
        }
    }

    @RequestMapping(value = "/importExcel02", method = RequestMethod.POST)
    public void importExcel02(@RequestParam("file") MultipartFile file) {
        ImportParams params = new ImportParams();
        // 设置标题行数，数据从第几行开始读取等参数
        params.setTitleRows(1); // 假设标题行是第1行
        params.setHeadRows(1);  // 假设表头行是第2行
        try {
            List<UserDto> userList = ExcelImportUtil.importExcel(file.getInputStream(), UserDto.class, params);
            // 处理导入的数据，比如保存到数据库
            for (UserDto user : userList) {
                System.out.println("user = " + user);
            }
        } catch (Exception e) {
            // 异常处理，比如导入失败时的错误信息反馈
            e.printStackTrace();
        }
    }

    @RequestMapping(value = "/importExcel03", method = RequestMethod.POST)
    public void importExcel03(@RequestParam("file") MultipartFile file) {
        ImportParams params = new ImportParams();
        // 设置标题行数，数据从第几行开始读取等参数
        params.setTitleRows(1); // 假设标题行是第1行
        params.setHeadRows(1);  // 假设表头行是第2行
        try {
            List<UserDto> userList = ExcelImportUtil.importExcel(file.getInputStream(), UserDto.class, params);
            // 处理导入的数据，比如保存到数据库
            for (UserDto user : userList) {
                System.out.println("user = " + user);
            }
        } catch (Exception e) {
            // 异常处理，比如导入失败时的错误信息反馈
            e.printStackTrace();
        }
    }
}